#coding=utf-8
# 另一种有序列表叫元组：tuple。tuple和list非常类似，但是tuple一旦初始化就不能修改
array4 = ('1', 2, 3.1)
print(array4)
# 现在，array4这个tuple不能变了，它也没有append()，insert()这样的方法。其他获取元素的方法和list是一样的，你可以正常地使用array4[0]，array4[-1]，但不能赋值成另外的元素
# 但是，要定义一个只有1个元素的tuple，如果你这么定义：
array5 = (1)
print(array5)
# 定义的不是tuple，是1这个数！这是因为括号()既可以表示tuple，又可以表示数学公式中的小括号，这就产生了歧义，因此，Python规定，这种情况下，按小括号进行计算，计算结果自然是1。
# 所以，只有1个元素的tuple定义时必须加一个逗号,，来消除歧义：
array6 = (1,)
print(array6)
# 最后来看一个“可变的”tuple：
array7 = ('a', 'b', ['c-1', 'c-2'])
print(array7)
array7[2][0] = 'c-3'
array7[2][1] = 'c-4'
print(array7)
# 表面上看，tuple的元素确实变了，但其实变的不是tuple的元素，而是list的元素。tuple一开始指向的list并没有改成别的list，所以，tuple所谓的“不变”是说，tuple的每个元素，指向永远不变。即指向'a'，就不能改成指向'b'，指向一个list，就不能改成指向其他对象，但指向的这个list本身是可变的！
# 理解了“指向不变”后，要创建一个内容也不变的tuple就必须保证tuple的每一个元素本身也不能变。